package persistent.dao;

import java.util.List;

import model.TBackRole;
import model.TBackRoleSystemModel;
import model.VBackRoleSystemModel;

/**
 * 管理员角色业务类接口
 * @author djf
 * @since 2018/11/21
 */
public interface BackRoleDAO {

	/**
	 * 添加一个管理员角色
	 * @param backrole 管理员角色对象
	 * @return 成功返回true,失败返回false
	 */
	
	public boolean addBackRole(TBackRole backrole);
	
	/**
	 * 修改一个管理员角色类型
	 * @param backrole 管理员角色对象
	 * @return 成功返回true,失败返回false
	 */
	public boolean updateRole(TBackRole backrole);
	
	/**
	 * 得到一个管理员角色对象
	 * @param backroleid 管理员角色id
 	 * @return 成功返回TBackRole对象，失败返回null
	 */
	public TBackRole getTBackRole(int backroleid);
	
	/**
	 * 通过查询条件得到管理员角色列表
	 * @param strwhere 查询条件
	 * @return 成功返回TBackRole列表，失败返回null
	 */
	public List<TBackRole> getBackRoleList(String strwhere);
	
	/**
	 * 通过查询条件得到管理员角色列表,带分页
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回TBackRole列表，失败返回null
	 */
	public List<TBackRole> getBackRoleList(String strwhere,int currentPage, int pageSize);
	
	/**
	 * 根据角色查询菜单列表(不分页)
	 * @param strwhere 查询条件
	 * @return 成功返回VBackRoleSystemModel列表，失败返回null
	 */
	public List<VBackRoleSystemModel> getBackRoleSystemModelMenu(String strwhere);
	
	/**
	 * 根据角色查询出角色权限(不分页)
	 * @param strwhere 查询条件
	 * @return 成功返回VBackRoleSystemModel列表，失败返回null
	 */
	public List<VBackRoleSystemModel> getBackRoleSystemModel(String strwhere);
	
	/**
	 * 根据角色查询出角色权限(分页)
	 * @param strwhere 查询条件
	 * @param currentPage 当前页
	 * @param pageSize 每页数
	 * @return 成功返回VBackRoleSystemModel列表，失败返回null
	 */
	public List<VBackRoleSystemModel> getBackRoleSystemModel(String strwhere,int currentPage, int pageSize);

	/**
	 * 通过角色权限id得到一个角色权限对象
	 * @param id
	 * @return
	 */
	public TBackRoleSystemModel getTBackRoleSystemModel(int id);
	
	/**
	 * 修改角色权限(授予、取消)
	 * @param backrolemodel 角色权限
	 * @return 成功返回true，失败返回false
	 */
	public boolean updateBackRoleSystemModel(TBackRoleSystemModel backrolemodel);
	
	/**
	 * 启用一个权限
	 * @param powerid 权限编号
	 * @return 成功返回true，失败返回false
	 */
	public boolean enable(int powerid);
	
	/**
	 * 停用一个权限
	 * @param powerid 权限编号
	 * @return 成功返回true，失败返回false
	 */
	public boolean disEnable(int powerid);
}
